﻿
package com.cbts.service.info;

import java.io.File;
import java.util.List;


import com.cbts.entity.TravelStandard;
import com.cbts.entity.UserGroup;
import com.cbts.entity.UserInfo;
import com.cbts.util.Page;
/**
 * @author 邱鸿辉
 *
 */
public interface UserInfoService{
	/**
	 * 员工登录
	 * @param userInfo 员工
	 * @return 登录成功或失败信息
	 */
	public boolean login(String userid,String pwd) ;
	/**
	 * 增加员工
	 * @param ui 员工
	 * @return 成功增加员工则返回true，否则返回false
	 */
	public boolean addUserInfo(UserInfo ui);
	/**
	 * 删除员工
	 * @param ui 员工
	 * @return 
	 *//*
	public boolean deleteUserInfo(UserInfo ui);
	*//**
	 * 获取员工
	 * @param id 员工id(员工标识)
	 * @return 员工
	 */
	public UserInfo getUserInfo(String id);
	/**
	 * 修改员工
	 * @param ui 员工
	 * @return
	 */
	public boolean updateUserInfo(UserInfo ui);
	/**
	 * 批量增加员工
	 * @param file 员工信息表（存储员工信息）
	 * @return
	 */
	public boolean addBatchUserInfo(File file,String fileName);
/*	*//**
	 * 按部门查找员工
	 * @param id 部门id(部门标识)
	 * @return
	 *//*
	public List<UserInfo> getUserInfoByDepartment(String id,int firstResult,int maxResult);
	*//**
	 * 按用户组获取员工
	 * @param id 用户组id(用户组标识)
	 * @return
	 *//*
	public List<UserInfo> getUserInfoByGroup(String id,int firstResult,int maxResult);*/
/*	
	*//**
	 * 根据邮箱获取用户
	 * @param email
	 * @return
	 *//*
	public List<UserInfo> getUserInfoByEmail(String email,int firstResult,int maxResult);*/
	/**
	 * 获取所有员工
	 * @return 员工列表
	 */
	public Page<UserInfo> getAllUserInfo(int pageNum);
	public Page<UserInfo> getAllUserInfo();
	/**
	 *批量 保存或者修改员工信息
	 * @return 员工列表
	 */
	public boolean saveOrUpdateUserInfo(List<UserInfo> userInfoList);
	
	
	/**
	 * 增加用户组
	 * @param userGroup 用户组
	 * @return 成功增加用户组则返回true，否则否会false
	 */
	public boolean addUserGroup(UserGroup userGroup);
/*	*//**
	 * 删除用户组
	 * @param userGroup 用户组
	 * @return
	 */
	public boolean deleteUserGroup(UserGroup userGroup);
	/**
	 * 获取用户组
	 * @param id 用户组id(用户组标识)
	 * @return
	 */
	public UserGroup getUserGroup(int id);
	/**
	 * 修改用户组
	 * @param userGroup 用户组
	 * @return
	 */
	public boolean updateUserGroup(UserGroup userGroup);
	/**
	 * 获取全部用户组
	 * @return 全部用户组（列表）
	 */
	public List<UserGroup> getAllUserGroup();
	public Page<UserGroup> getAllUserGroupByPage();
	/**
	 * 移动用户组成员到另一个用户组
	 * @param userInfo 用户
	 * @param userGroupId 新的用户组id
	 * @return 
	 *//*
	public boolean moveToUserGroup(UserInfo userInfo,int userGroupId);
	*//**
	 * 获取用户组中的所有用户
	 * @param GroupId 用户组id
	 * @return 用户组所有 用户
	 *//*
	public List<UserInfo> getUserGroupUsers(int GroupId,int firstResult,int maxResult);*/
	/**
	 * 删除员工列表
	 * @return 员工列表
	 */
	public boolean deleteUserInfoList(List<UserInfo> userInfoList);
	/**
	 * 更新员工列表
	 * @return 员工列表
	 */
	public boolean updateUserInfoList(List<UserInfo> userInfoList);
	/**
	 * 批量删除或者修改员工信息
	 *  @param userInfoList 员工列表
	 *   @param check 被勾选的userid构成的字符串 
	 * 
	 */
	public void updateOrDeleteUserInfo(List<UserInfo> userInfoList,String check,int operate);
	/**
	 * 批量删除或者修改分组信息
	 *  @param userGroupList 用户组列表
	 *   @param check 被勾选的userGroupId构成的字符串 
	 * @return 
	 */
	public List<UserGroup> getSelectedUserGroup(List<UserGroup> userGroupList,String check,String operate);
	/**
	 * 删除员工列表
	 * @return 员工列表
	 */
	public boolean deleteUserGroupList(List<UserGroup> userGroupList);
	/**
	 * 更新员工列表
	 *  @param userGroupList 用户组列表
	 * @return 员工列表
	 */
	public boolean updateUserGroupList(List<UserGroup> userGroupList);
	/**
	 * 获取全部差旅标准
	 * @return 差旅标准列表
	 */
	public List<TravelStandard> getAllTravelStandard();
	/**
	 * 根据用户组名获取用户组
	 *  @param userGroupName 用户组名
	 * @return 用户组
	 */
	public UserGroup getUserGroupByUserGroupName(String userGroupName);
	/**
	 * 检查是否存在相同的用户组名
	 * @param userGroupId 用户组编号
	 * @param userGroupName 用户组名
	 * @return 存在则返回true，否则返回false
	 */
	public boolean sameUserGroupNameExist(int userGroupId,String userGroupName);
	/**
	 * 根据部门号获取员工
	 * @param departmentId 部门号
	 * @return 员工信息
	 */
	public List<UserInfo> getUserInfoByDepartment(String departmentId); 
}
